home *** CD-ROM | disk | FTP | other *** search
/ PD Collection CD 1 / PD Collection CD 1.iso / textual / pdftops / xpdf / c++ / Array next >
Text File  |  1996-06-08  |  989b  |  52 lines

  1. //========================================================================
  2. //
  3. // Array.h
  4. //
  5. // Copyright 1996 Derek B. Noonburg
  6. //
  7. //========================================================================
  8.  
  9. #ifdef __GNUC__
  10. //#pragma implementation
  11. #endif
  12.  
  13. #include <stddef.h>
  14. #include "gmem.h"
  15. #include "Object.h"
  16. #include "Array.h"
  17.  
  18. //------------------------------------------------------------------------
  19. // Array
  20. //------------------------------------------------------------------------
  21.  
  22. Array::Array() {
  23.   elems = NULL;
  24.   size = length = 0;
  25.   ref = 1;
  26. }
  27.  
  28. Array::~Array() {
  29.   int i;
  30.  
  31.   for (i = 0; i < length; ++i)
  32.     elems[i].free();
  33.   gfree(elems);
  34. }
  35.  
  36. void Array::add(Object *elem) {
  37.   if (length + 1 > size) {
  38.     size += 8;
  39.     elems = (Object *)grealloc(elems, size * sizeof(Object));
  40.   }
  41.   elems[length] = *elem;
  42.   ++length;
  43. }
  44.  
  45. Object *Array::get(int i, Object *obj) {
  46.   return elems[i].fetch(obj);
  47. }
  48.  
  49. Object *Array::getNF(int i, Object *obj) {
  50.   return elems[i].copy(obj);
  51. }
  52.